package com.hh.base.util.ext

import com.alibaba.fastjson.JSON
import java.lang.reflect.ParameterizedType

/**
 * Create By hHui on 2025/4/3 16:54
 *
 * @description 任意类型的扩展
 */

/**
 * 获取泛型类的第[index]个参数的类型
 */
fun <T> Any.getGenericsClass(index: Int): T {
    return (this.javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[index] as T
}

/**
 * 任意类转json字符串
 */
fun <T> T.toJsonString(): String {
    return JSON.toJSONString(this)
}

/**
 * 任意类转json字符串(时间格式化)
 */
fun <T> T.toJsonStringWithDateFormat(dataFormat: String = "yyyy-MM-dd HH:mm:ss"): String {
    return JSON.toJSONStringWithDateFormat(this, dataFormat)
}